1. Field of the Invention
The present invention relates to a billing system and method for a distributed data storage system for storing data in subsets and more particularly, to a billing system and method in which information regarding the original file size and the times and types of transactions are maintained and stored separately from the stored data subsets and used to perform billing operations in a commercial information dispersal data storage system.
2. Description of the Prior Art
Various data storage systems are known for storing data. Normally such data storage systems store all of the data associated with a particular data set, for example, all the data of a particular user or all the data associated with a particular software application or all the data in a particular file, in a single dataspace (i.e. single digital data storage device). Critical data is known to be initially stored on redundant digital data storage devices. Thus, if there is a failure of one digital data storage device, a complete copy of the data is available on the other digital data storage device. Examples of such systems with redundant digital data storage devices are disclosed in U.S. Pat. Nos. 5,890,156; 6,058,454; and 6,418,539, hereby incorporated by reference. Although such redundant digital data storage systems are relatively reliable, there are other problems with such systems. First, such systems essentially double or further increase the cost of digital data storage. Second, all of the data in such redundant digital data storage systems is in one place making the data vulnerable to unauthorized access.
The use of such information dispersal algorithms in data storage systems is also described in various trade publications. For example, “How to Share a Secret”, by A. Shamir, Communications of the ACM, Vol. 22, No. 11, November, 1979, describes a scheme for sharing a secret, such as a cryptographic key, based on polynomial interpolation. Another trade publication, “Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance”, by M. Rabin, Journal of the Association for Computing Machinery, Vol. 36, No. 2, April 1989, pgs. 335-348, also describes a method for information dispersal using an information dispersal algorithm. Unfortunately, these methods and other known information dispersal methods are computationally intensive and are thus not applicable for general storage of large amounts of data using the kinds of computers in broad use by businesses, consumers and other organizations today. Thus there is a need for a data storage system that is able to reliably and securely protect data that does not require the use of computation intensive algorithms.
Several companies offer commercial data storage servers using data storage systems that store copies of data files together with associated metadata. Many companies, such as Rackspace, Ltd, offer data storage services as a part of general managed hosting services. Other known companies, such as Iron Mountain Incorporated, offer data storage services as a part of an online backup service. These companies typically determine billing charges in relation to the size of the data stored. The original file size is stored together with the data as a metadata attribute associated with the data file. Billing for such services is based on the amount of data stored or transferred. In these cases, billing amounts are derived from the metadata attributes associated with each file. In some situations, it is necessary that the data being stored or transmitted be changed in size, for example, by compression, in order to reduce storage space or improve transmission speed. In these situations, known information dispersal storage systems are unable to keep track of the original data file size. Since billing in such known systems is based upon metadata attributes associated with the data being stored or transferred, billing options in such situations are rather limited. Thus, there is a need for more flexible billing options in such information dispersal storage systems.